﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using SIGCBI.Repository;
using SIGCBI.Entities;

namespace SIGCBI.Test.AlmacenTest
{
    [TestClass]
    public class GuiaEntradaTest
    {
        [TestMethod]
        public void GetAllFromGuiaEntrada()
        {
            GuiaEntradaRepository repository = new GuiaEntradaRepository();
            List<GUIA_ENTRADA> actual;
            actual = repository.GetAllFromGuiaEntrada();
            Assert.IsTrue(actual.Count > 1);
        }

        [TestMethod]
        public void GetFromGuiaEntradaById()
        {
            GuiaEntradaRepository  repository = new GuiaEntradaRepository ();
            int id = 1;
            GUIA_ENTRADA actual;
            actual = repository.GetFromGuiaEntradaById(id);
            Assert.IsTrue(actual.ID == 1);
        }

        [TestMethod]
        public void GetAllFromGuiaEntradaByCriterios()
        {
            GuiaEntradaRepository  repository = new GuiaEntradaRepository();
            var proveedor = "DANY VALDIVIA HUAMAN";
            var doc = "SIS001";
            var area = "SISTEMAS";
            var fec1 = DateTime.Now.Date;
            var fec2 = DateTime.Now.Date;

            List<GUIA_ENTRADA> actual;
            actual = repository.GetFromGuiaEntradaByCriterioAndAreaAndFecha(proveedor, doc, area, fec1, fec2);
            Assert.IsTrue(actual.Count >= 1);
            //Assert.IsNotNull(actual);
        }

        [TestMethod]
        public void AddGuiaEntrada()
        {
            GuiaEntradaRepository guiaRepository = new GuiaEntradaRepository();
            ProductoRepository prodRepository = new ProductoRepository();
            
            var ListEsperado = (List<GUIA_ENTRADA>)guiaRepository.GetAllFromGuiaEntrada();

            var producto = prodRepository.GetFromProductoById(3);

            var detalle = new List<DETALLE_GUIA_ENTRADA>();

            var item = new DETALLE_GUIA_ENTRADA() { Cantidad = 1, IdGuiaEntrada =  1, IdProducto = producto.ID, ValorUnitario = 4, PRODUCTO = producto};

            detalle.Add(item);

            GUIA_ENTRADA guia = new GUIA_ENTRADA()
            {
                Fecha = DateTime.Now.Date,
                FechaEntrada = DateTime.Now.Date,
                IdArea = 1,
                IngresadoAlmacen = true,
                NroDoc = "GUI001",
                Total = 50,
                IdProveedor = 2,
                PROVEEDOR = null,
                DETALLE_GUIA_ENTRADA = detalle
            };
            guiaRepository.AddGuiaEntrada(guia);
            var ListaCTUAL = (List<GUIA_ENTRADA>)guiaRepository.GetAllFromGuiaEntrada();
            Assert.AreEqual(ListEsperado.Count + 1, ListaCTUAL.Count, "Error ");
        }

        
    }
}
